System.Collections.ObjectModel.ObservableCollection<T> sınıfı

Bu makale, bu API'nin başvuru belgelerine ek açıklamalar sağlar.

sınıfı, ObservableCollection<T> öğeler eklendiğinde veya kaldırıldığında ya da listenin tamamı yenilendiğinde bildirim sağlayan dinamik veri koleksiyonunu temsil eder.

Çoğu durumda, birlikte çalıştığınız veriler bir nesne koleksiyonudur. Örneğin, veri bağlamada yaygın bir senaryo , ListViewgibi bir ItemsControlListBoxkullanmak veya TreeView bir kayıt koleksiyonunu görüntülemektir.

IEnumerable arabirimini uygulayan herhangi bir koleksiyon üzerinde numaralandırabilirsiniz. Ancak, koleksiyondaki eklemelerin veya silmelerin kullanıcı arabirimini otomatik olarak güncelleştirmesi için dinamik bağlamalar ayarlamak üzere koleksiyonun INotifyCollectionChanged arabirimini uygulaması gerekir. Bu arabirim, temel alınan koleksiyon değiştiğinde CollectionChanged tetiklenmesi gereken olayı kullanıma sunar.

ObservableCollection<T> sınıfı, arabirimini uygulayan INotifyCollectionChanged bir veri toplama türüdür.

Kendi koleksiyonunuzu uygulamadan önce, List<T>, Collection<T> ve BindingList<T> gibi mevcut koleksiyon sınıflarından birini veya ObservableCollection<T> kullanmayı göz önünde bulundurun. Gelişmiş bir senaryonuz varsa ve kendi koleksiyonunuzu uygulamak istiyorsanız, dizin tarafından tek tek erişilebilen genel olmayan bir nesne koleksiyonu sağlayan kullanmayı göz önünde bulundurun IList. IList Uygulama, veri bağlama altyapısıyla en iyi performansı sağlar.

Not

Veri değerlerinin kaynak nesnelerden bağlama hedeflerine aktarılmasını tam olarak desteklemek için, koleksiyonunuzdaki bağlanabilir özellikleri destekleyen her nesnenin arabirim gibi INotifyPropertyChanged uygun bir özellik değiştirilmiş bildirim mekanizması uygulaması gerekir.

Daha fazla bilgi için Bkz. Veri Bağlamaya Genel Bakış'ta "Koleksiyonlara Bağlama".

XAML kullanımıyla ilgili notlar

ObservableCollection<T> 3.0 ve 3.5 sürümlerinde Windows Presentation Foundation'da (WPF) XAML nesne öğesi olarak kullanılabilir. Ancak, kullanımın önemli sınırlamaları vardır.

  • ObservableCollection<T> kök öğe olmalıdır, çünkü genelin x:TypeArgumentsObservableCollection<T> kısıtlanmış türünü belirtmek için kullanılması gereken öznitelik yalnızca kök öğenin nesne öğesinde desteklenir.

  • Bir x:Class öznitelik bildirmeniz gerekir (bu, bu XAML dosyası için derleme eyleminin veya XAML'yi derleyen başka bir derleme eylemi olması Page gerektiğini gerektirir).

  • ObservableCollection<T> başlangıçta varsayılan XML ad alanına eşlenmeyen bir ad alanında ve derlemededir. Ad alanı ve derleme için bir ön ek eşlemeniz ve ardından bu ön eki için ObservableCollection<T>nesne öğesi etiketinde kullanmanız gerekir.

Bir uygulamada XAML'deki özellikleri kullanmanın ObservableCollection<T> daha kolay bir yolu, öğesinden ObservableCollection<T>türetilen ve bunu belirli bir türle kısıtlayan kendi genel olmayan özel koleksiyon sınıfınızı bildirmektir. Ardından bu sınıfı içeren derlemeyi eşleyin ve XAML'nizde bir nesne öğesi olarak başvurun.